0f23f8c498986fe573607cc64d680660b238ec9f,fabric/fabric-commands/src/main/java/org/fusesource/fabric/commands/ProfileEdit.java,ProfileEdit,editProfile,#Profile#,118
Before Change
private void editProfile(Profile profile) throws Exception {
String pid = AGENT_PID;
if (configAdminConfigList != null) {
pid = configAdminConfigList.substring(0,configAdminConfigList.indexOf(PID_KEY_SEPARATOR));
}
Map<String, Map<String, String>> config = profile.getConfigurations();
Map<String, String> pidConfig = config.get(pid);
if (pidConfig == null) {
pidConfig = new HashMap<String, String>();
}
if (featuresList != null && !featuresList.isEmpty()) {
String[] features = featuresList.split(DELIMETER);
for (String feature : features) {
updateConfig(pidConfig, FEATURE_PREFIX + feature.replace('/', '_'), feature, set, delete);
}
}
if (repositoryUriList != null && !repositoryUriList.isEmpty()) {
String[] repositoryURIs = repositoryUriList.split(DELIMETER);
for (String repopsitoryURI : repositoryURIs) {
updateConfig(pidConfig, REPOSITORY_PREFIX + repopsitoryURI.replace('/', '_'), repopsitoryURI, set, delete);
}
}
if (bundlesList != null && !bundlesList.isEmpty()) {
String[] bundles = bundlesList.split(DELIMETER);
for (String bundlesLocation : bundles) {
updateConfig(pidConfig, BUNDLE_PREFIX + bundlesLocation.replace('/', '_'), bundlesLocation, set, delete);
}
}
if (fabsList != null && !fabsList.isEmpty()) {
String[] fabs = fabsList.split(DELIMETER);
for (String fabsLocation : fabs) {
updateConfig(pidConfig, FAB_PREFIX + fabsLocation.replace('/', '_'), fabsLocation, set, delete);
}
}
if (configAdminConfigList != null && !configAdminConfigList.isEmpty()) {
Map<String, String> configMap = extractConfigs(configAdminConfigList);
for (Map.Entry<String, String> configEntries : configMap.entrySet()) {
String key = configEntries.getKey();
if (key.contains(PID_KEY_SEPARATOR)) {
String currentPid = key.substring(0, key.lastIndexOf(PID_KEY_SEPARATOR));
key = key.substring(key.lastIndexOf(PID_KEY_SEPARATOR) + 1);
String value = configEntries.getValue();
Map<String, String> cfg = config.get(currentPid);
if (cfg == null) {
cfg = new HashMap<String, String>();
}
if (importPid) {
importPidFromLocalConfigAdmin(currentPid, cfg);
}
updatedDelimitedList(pidConfig, key, value, delimiter, set, delete, append, remove);
config.put(currentPid, cfg);
}
}
After Change
}
}
if (configAdminProperties != null && configAdminProperties.length > 0) {
for (String configAdminProperty : configAdminProperties) {
String currentPid = null;
Map<String, String> existingConfig = null;
if (configAdminProperty != null ) {
String keyValue = "";
if (configAdminProperty.contains(PID_KEY_SEPARATOR)) {
currentPid = configAdminProperty.substring(0, configAdminProperty.indexOf(PID_KEY_SEPARATOR));
keyValue = configAdminProperty.substring(configAdminProperty.indexOf(PID_KEY_SEPARATOR) + 1);
} else {
currentPid = configAdminProperty;
}
existingConfig = config.get(currentPid);
if (existingConfig == null) {
existingConfig = new HashMap<String, String>();
}
//We only support import when a single pid is spcecified
if (configAdminProperties.length == 1 && importPid) {
importPidFromLocalConfigAdmin(currentPid, existingConfig);
}
Map<String, String> configMap = extractConfigs(keyValue);
for (Map.Entry<String, String> configEntries : configMap.entrySet()) {
String key = configEntries.getKey();
String value = configEntries.getValue();
updatedDelimitedList(existingConfig, key, value, delimiter, set, delete, append, remove);
}
config.put(currentPid, existingConfig);